/**
 * Copyright (C) 2025 ROKAE (Beijing) Technology Co., LTD.
 * All Rights Reserved.
 *
 * Information in this file is the intellectual property of Rokae Technology Co., Ltd,
 * And may contains trade secrets that must be stored and viewed confidentially.
 *
 * @file JsonWorker.h
 * @brief 执行 JSON 指令任务的工作类
 */
#ifndef JSONWORKER_H
#define JSONWORKER_H

#include <QObject>
#include <QJsonArray>
#include <QJsonObject>
#include <QMutex>
#include <QMutexLocker>
#include <QRunnable>

#include "interface/interfacemanager.h"

// 用于在子线程中执行 JSON 指令任务的工作类
class JsonWorker : public QObject, public QRunnable
{
    Q_OBJECT
public:
    JsonWorker(const QJsonObject &json);

    /**
    * @brief 设置任务参数
    * @param json 要发送的 JSON 指令
    */
//    void setParams(const QJsonObject &json);
    /**
    * @brief 工作入口函数
    * 执行接口调用，并发出 finished 信号，返回结果。
    * 通常由 QThread 启动。
    */
    void run() override;

signals:
    /**
    * @brief 通用接口完成时发出的信号
    * @param result JSON 数组结果（插件返回）
    */
    void finished(QJsonArray result);

public slots:


private:
    QJsonObject m_json;                         // 需要发送的 JSON 指令对象
};

#endif // JSONWORKER_H
